C-Plusplus/CLI Beschreibung C-Plusplus/CLI  
 
   
Beschreibung von C-Plusplus/CLI Infos zu C-Plusplus/CLI und Beschreibung.
Nicht angemeldet: Anmelden | Impressum 
Navigation
· Hauptseite
· Know Forum - neu!
· Zufälliger Artikel
· Spezialseiten
· Alle Artikel
· Eingeordnet unter
Aktueller Artikel
· Seite bearbeiten
· Links auf diese Seite
· Verlinkte Seiten
· Versionen


 
 



Letzte Beiträge
Die Klimalüge CO2Guten Abend Herr Enger
"Meine Fr...
Volumenausdehnung be...Hallo da draußen, ich h
abe folgendes ...
Osterrätsel der Fran...Hallo, ich hab' mich leide
r mit meinere ...
was ist denn mit dem...Hallo, der Song heißt Cal
istan "...
Strichcode entschlüs...Hallo benni, ich stehe
gerade vor dem...
Lust auf Focus Rätse...Hallo, an alle Spezialist
en dieses Räts...
ErdölServus, Erdöl hat keine
Formel, da es...
Frage an die Student...Hallo, im Prinzip ist das
eine gute Ide...
CO2 chemische Trennu...Hallo ....... CO2 in der
Luft wird begr...
IGBT ansteuerschaltu...Guten Tag, Wer weiss lief
ert eine funk...


C-Plusplus/CLI

Dieser Text beschreibt C-Plusplus/CLI.


Der untere Text beinhaltet die C-Plusplus/CLI Beschreibung. Soweit es sich um ein definierbares Objekt handelt, sollte hier eine C-Plusplus/CLI Definition vorhanden sein. Sollte eine Definition von C-Plusplus/CLI fehlen, kann diese von Ihnen verfaßt werden. Wir sind bestrebt die Beschreibung von C-Plusplus/CLI möglichst ausführlich zu halten.

Jeder Text bei Know-Library, sowie ein Teil davon (Definition, Beschreibung etc.), außer Bücher Beschreibungen kann bearbeitet werden. Falls die Beschreibung auf dieser Seite nicht korrekt ist klicken Sie auf 'Beschreibung editieren' um den Text zu korrigieren bzw. neuen einzufügen. Weitere Informationen und Bücher zum Thema C-Plusplus/CLI Beschreibung , so wie Link zum Forum finden Sie weiter unten. Eine Übersicht der Texte, die das Thema C-Plusplus/CLI beschreiben finden Sie auf der Seite alle Artikel über C-Plusplus/CLI. Fragen zu dem Thema C-Plusplus/CLI können im Forum gestellt werden. Klicken Sie hier um zu dem Forum zu wechseln.

C-Plusplus/CLI Artikel

C++/CLI ist eine der von Microsoft entwickelten Sprachen für die .NET-Plattform.

Im Wesentlichen handelt es sich bei C++/CLI um die Sprache C++ mit einigen Erweiterungen zur verbesserten Unterstützung der so genannten Common Language Infrastructure (CLI).

Sinn und Zweck der Erweiterungen

Ziele bei der Entwicklung von C++/CLI waren:

  • Schaffung einer eleganten Syntax, die gut zu dem bisherigen C++ passt. Ein Programmierer, der bereits mit C++ vertraut ist, soll die Spracherweiterungen als möglichst "natürlich" empfinden.
  • Gute Unterstützung von Besonderheiten der CLI wie Merkmale, Ereignisse, generische Typen (Generics), Garbage-Collection, Referenz-Klassen, usw.
  • Gute Unterstützung von Dingen, die in dem bisherigen C++ verbreitet sind, wie etwa Templates oder "deterministische Deinitialisierungen", und zwar für alle Typen, einschließlich der neuartigen CLI-Klassen.
  • Kompatibilität mit bestehenden C++-Programmen durch das Einbringen von fast ausschließlich reinen Spracherweiterungen. == Unterschied zu Managed C++ ==

C++/CLI ist auch eine Weiterentwicklung von Managed C++. In dem Unterschied zu Managed C++ verzichtet C++/CLI auf die von vielen Programmierern als unschön empfundenen Sprach-Konstrukte mit mehreren Grundstrichen.

Im Unterschied zu Managed C++ wird die Destruktor-Syntax ~T() nicht mehr auf den Finalisierer abgebildet. Destruktor und Finalisierer werden in C++/CLI unterschieden; der Finalisierer hat jetzt die Syntax !T(). Der Destruktor ist außerdem identisch mit der Funktion Dispose (dies wurde durch technische Änderungen an der CLR ermöglicht).== Objektzeiger ==

Die augenfälligste Neuerung ist die Syntax ^ für die Objektzeiger (Handles). Beispiel:

 T^ whole_object_pointer = gcnew T(a, b);

Dabei ist gcnew ein Operator zur Allozierung von Objekten, die von der Garbage-Collection verwaltet werden.

Im Vergleich dazu die herkömmliche Syntax für Zeiger:

 T* plain_old_pointer = new T(a, b);

Trennung von Deinitialisierung und Speicherfreigabe:

Anders als bei gewöhnlichen Zeigern wird beim Löschen von Objektzeigern (Handles) mittels delete zwar der Destruktor aufgerufen, nicht aber der Speicher freigegeben. Statt dessen wird der vom Objekt belegte Speicher durch die automatische Speicherbereinigung (Garbage-Collection) an das System zurückgegeben. In dem Unterschied zu anderen Sprachen mit automatischer Speicherbereinigung (z.B. C# oder Java) wird hier also erstmals die Freigabe von Speicher und anderen Ressourcen nicht mehr zusammen mit Hilfe der Speicherbereinigung abgewickelt ("deterministische Deinitialisierung"). Als automatische Variablen anlegbare CLI-Objekte:

Eine technische Neuerung sind auch die als automatische Variablen (d.h. "auf dem Stack") anlegbaren CLI-Objekte. In dem Zusammenspiel mit den neuartigen Objektzeigern (Handles) bleiben in C++ dadurch häufig angewandte Programmiertechniken wie RAII (Abkürzung für engl. resource acquisition is initialization) auch für die mit der Garbage-Collection verwalteten CLI-Objekte möglich.

Dazu ein Beispiel in C++/CLI:

  void Uebertragung()
  {
    MessageQueue source("server\sourceQueue");
    String^ mqname = (String^)source.Receive().Body;
     
    MessageQueue dest1("server\" + mqname), dest2("backup\" + mqname);
    Message^ message = source.Receive();
    dest1.Send( message );
    dest2.Send( message );
  }
Erläuterung:
Beim Verlassen der Funktion Uebertragung (mit return oder beim Auftreten einer Ausnahme) rufen Objekte implizit ihre Funktion Dispose auf, und zwar in der umgekehrten Reihenfolge in der sie konstruiert wurden. In dem obigen Beispiel also dest2, dest1 und dann source.
Wenn ein automatisches Objekt seinen Gültigkeitsbereich verlässt, oder beim Löschen mit delete, wird sein Destruktor aufgerufen. Der Compiler unterdrückt dann den Aufruf der normalerweise von der automatischen Speicherwaltung angestoßenen Finalisierungsfunktion. Der Wegfall von Finalisierungsfunktionen kann sich insgesamt positiv auf die Ausführungsgeschwindigkeit auswirken.== Weitere Neuerungen ==

Weitere Neuerungen sind: eine verbesserte Enumerierung (enum class), Delegierte, Boxing, Schnittstellenklassen, versiegelte Klassen, Attribute, usw.

Weiteres zu dem Artikel C-Plusplus/CLI

Andere Leser interessierten sich auch für folgende Beschreibungen: Aufruf, Destruktor, Ressourcen, Speicherbereinigung
Schnellzugrif auf verwandte Texte:
 
NEU! Frage im Forum zum Thema:
 
Wenn die Beschreibung 'C-Plusplus/CLI' Ihrer Meinung nach nicht korrekt ist oder in aktueller Version Fehler enthalten sind oder es fehlt die C-Plusplus/CLI Definition, dann klicken Sie bitte auf "Beschreibung bearbeiten" und schreiben Sie die Eigene Version des Textes. Die Änderungen in der Beschreibung werden sofort aktiv und für alle sichtbar. Ein Administrator wird Ihre Version der Beschreibung und Definition von 'C-Plusplus/CLI' nachher prüfen. Bitte achten Sie auf die Urheberrechte (Copyright). Wir sind für die besseren Beschreibung von 'C-Plusplus/CLI' und 'C-Plusplus/CLI' Definition sehr dankbar.

Alle Tipps zu den Bücher auf dieser Seite wurden automatisch generiert. D.h. die Bücher wurden aus einer Datenbank von dem Computer ausgesucht. Deshalb kann es vorkommen, dass vorgeschlagene Bücher nicht ganz der 'C-Plusplus/CLI' Beschreibung entsprechen.

Liste aller verwandten Artikel: Aufruf, Beispiel, Cli, Clr, Compiler, Destruktor, Entwicklung, Freigabe, Funktion, Microsoft, Objekt, Operator, Raii, Ressourcen, Speicher, Speicherbereinigung, Sprache, Sprachen, Syntax, System, UEbertragung, Unterschied, Variablen, Vergleich, Zweck
· Diese Seite wurde bisher 133 mal abgerufen.
· Letzte Counteraktualisierung erfolgte am 16.05.2008 um 17:08:28
· Diese Seite wurde zuletzt geändert um 20:22, 23. Sep 2004.
· Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008
Dieser Artikel basiert auf dem Artikel C-Plusplus/CLI aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Inhalte. In der Wikipedia ist eine Autorenauflistung verfügbar.

Von ""

· Diese Seite wurde bisher 133 mal abgerufen.
· Letzte Counteraktualisierung erfolgte am 16.05.2008 um 17:08:29
· Diese Seite wurde zuletzt geändert um 20:22, 23. Sep 2004.
· Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008